<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
        .box {
            width: 100px;
            height: 100px;
            background-color: aqua;
        }
    </style>
</head>

<body>
    <div class="box"></div>
    <script>
        // 事件绑定、事件监听；
        var boxs = document.querySelector(".box");
        // 绑定方式一：相同的事件 会被后面的覆盖掉；
        /* boxs.onclick = function() {
                                                      console.log("点击111");
                                                  };
                                                  boxs.onclick = function() {
                                                      console.log("点击222");
                                                  }; */
        /*   var boxs = {
                                            onclick: function() {},
                                        };
                                        boxs.onclick = function() {
                                            console.log("点击了");
                                        }; */
        /*  绑定事件方式二；addEventListener(事件类型,事件函数) 添加事件监听，绑定事件 */
        // 源于 设计模式里的 观察者模式；
        //1.绑定事件可以绑定多个 ，不会覆盖 ；一对多的关系；
        boxs.addEventListener("click", function() {
            console.log("点击了111");
        });
        boxs.addEventListener("click", function() {
            console.log("点击了2222");
        });
        boxs.addEventListener("click", function() {
            console.log("点击了333");
        });
        // addEventListener存在兼容问题；如果是ie8或者以下 需要用attachEvent来绑定事件；
        // 注意 ：attachEvent 先注册 后执行；
        // boxEle.attachEvent("onclick",function(){
        //     console.log("点击了1111");
        // })
        // boxEle.attachEvent("onclick",function(){
        //     console.log("点击了2222");
        // })
        // boxEle.attachEvent("onclick",function(){
        //     console.log("点击了3333");
        // })
        // console.log(window.addEventListener)
        // 兼容性的函数；
        function bindEvent(ele, eventName, fn) {
            // 判断浏览器是否支持 addEventListener方法
            if (window.addEventListener) {
                // 有addEventListener 是chrome浏览器
                ele.addEventListener(eventName, fn);
            } else {
                // ie8或者以下；
                ele.attachEvent("on" + eventName, fn);
            }
        }
        bindEvent(boxEle, "mousedown", function() {
            console.log("鼠标按下了");
        });
        // 总结： 1.和赋值式绑定事件的区别 赋值式只能绑定一个事件
        // 2. 事件监听可以绑定多个 兼容性 addEventListener 和 attachEvnet  ：执行顺序 可以绑定多个事件
    </script>
</body>

</html>